<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ProdutoRepository
 *
 * @author felipe
 */
class App_Model_ProdutoRepository {
    public function listarTodos(array $arParametro=null){
        $arDbProduto = App_Model_Db_Produto::build()->listarTodos(new Voitech_TO($arParametro));
        $arProduto = array();
        foreach($arDbProduto as $obRow) {
            $obProdutoMapper = new App_Model_ProdutoMapper(new App_Model_Produto());
            $arProduto[] = $obProdutoMapper->carregar($obRow)->getObModel();            
        }
        return $arProduto;        
    }
    
    public function buscarProdutoId($coProduto){
    	$obProdutoMapper = new App_Model_ProdutoMapper(new App_Model_Produto($coProduto));
    	return $obProdutoMapper->buscarPorId()->getObModel();
    }
    
    public function salvar(App_Model_Produto $obProduto) {
        $obProdutoMapper = new App_Model_ProdutoMapper($obProduto);
        if( $obProduto->getCoProduto() < 1 )
        {
            return $obProdutoMapper->cadastrar();
        }
        return $obProdutoMapper->alterar();
        
    }
    
    public function ativar(App_Model_Produto $oProduto) {
        $obProdutoMapper = new App_Model_ProdutoMapper($oProduto);
        return $obProdutoMapper->ativar();
    }
    
    public function desativar(App_Model_Produto $oProduto) {
        $obProdutoMapper = new App_Model_ProdutoMapper($oProduto);
        return $obProdutoMapper->desativar();
    }

    public function excluir(App_Model_Produto $oProduto) {
        $obProdutoMapper = new App_Model_ProdutoMapper($oProduto);
        return $obProdutoMapper->excluir();
    }

    public function atualizarEstoque(App_Model_Produto $oProduto) {
        $obProdutoMapper = new App_Model_ProdutoMapper($oProduto);
        return $obProdutoMapper->atualizarEstoque();
    }    
}
